#region imported Namespaces
using System;
#endregion

namespace PHSRAG.Insight21.Personnel
{
	#region Personnel constants
	/// <summary>
	/// Hold the constants that will be used by the Personnel module
	/// </summary>
	public class Constants
	{
		#region Reporting table names
		public static string	FilteredDataTableName			= "filtered";
		public static string	OriginalDataTableName			= "original";
		public static string	TotalsTableName					= "Totals";
        public static string    GLTableName                     = "GL";
        public static string    GLTotalTableName                = "GLTotal";
        public static string    LaborTotalTableName             = "LaborTotal";
        #endregion

		#region Sort order strings
		public static string SortOrderAscending		= "ASC";
		public static string SortOrderDescending	= "DESC";
		#endregion

		#region Stored Procedure names
		public static string PersonnelSummariesSPROCName		= "GetPersonnelSummaries";
		public static string ExpiredFundSPROCName				= "GetExpiredFundAllocations";
		public static string GetPayrollReportSPROCName			= "GetPayrollReport";
		public static string GetPayrollReportDatesSPROCName		= "GetPayrollReportDates";
		public static string GetSalaryGridSPROCName				= "GetSalaryGrid";
		public static string GetFiscalYearsSPROCName			= "GetFiscalYearList";
		public static string GetExternalFundSourceSPROCName		= "GetExternalFundType";
		public static string GetLaborDistributionsSPROCName		= "GetLaborDistributions";
		#endregion

		#region Default fund ending date
		public static string DefaultProjectEndingDate			= "12/31/9999";
		#endregion

		#region Page defaults
		public static int DefaultSummaryPageRank		= 1;
		public static int DefaultDetailsPageRank		= 2;
		public static int DefaultDatagridPageSize		= 20;
		public static string DataGridPageSizeKey		= "PersonnelDataGrid.ItemsPerPage";
		#endregion

		#region Personnel details constants
		
		#region Distribution period constants
		public class DistributionPeriodConstants
		{
			public static string DistributionPeriodsTableName		= "DistributionPeriods";
			public static string EffectiveDateColumnName			= "EffectiveDate";
			public static string ExpirationDateColumnName			= "ExpirationDate";
			public static string TotalAnnualRateColumnName			= "TotalAnnualRate";
			public static string TotalPercentEffortColumnName		= "TotalPercentEffort";
			public static string TotalToBePaidColumnName			= "TotalToBePaid";
			public static string CurrentSalaryColumnName			= "CurrentSalary";
		}
		#endregion

		#region Distribution splits constants
		public class DistributionSplitsConstants
		{
			public static string DistributionSplitsTableName		= "DistributionSplits";
			public static string SplitIDColumnName					= "SplitID";
			public static string SalaryDistributionIDColumnName		= "SalaryDistributionId";
			public static string SalaryAdjustmentIDColumnName		= "SalaryAdjustmentId";
			public static string PercentEffortColumnName			= "PercentEffort";
			public static string AnnualRateColumnName				= "AnnualRate";
			public static string EffectiveDateColumnName			= "EffectiveDate";
			public static string ExpirationDateColumnName			= "ExpirationDate";
			public static string ToBePaidColumnName					= "ToBePaid";
			public static string FundNumberColumnName				= "FundNumber";
			public static string TitleColumnName					= "Title";
			public static string EditedByColumnName					= "EditedBy";
			public static string EditDateColumnName					= "EditDate";
			public static string ProjectStartDateColumnName			= "ProjectStartDate";
			public static string ProjectEndDateColumnName			= "ProjectEndDate";
			public static string BudgetStartDateColumnName			= "BudgetStartDate";
			public static string BudgetEndDateColumnName			= "BudgetEndDate";
			public static string SponsorNumberColumnName			= "SponsorNumber";
			public static string SponsorNameColumnName				= "SponsorName";
			public static string FundCatergoryColumnName			= "FundCategory";
			public static string GetDistributionSplitsSPROCName		= "GetDistributionSplits";
		}
		#endregion

		#region Salary distribution constants
		public class SalaryDistributionsConstants
		{
			public static string SalaryDistributionsTableName		= "SalaryDistributions";
			public static string DistributionIDColumnName			= "DistributionId";
			public static string EmployeeJobMapIDColumnName			= "EmployeeJobMapId";
			public static string IsExternalFundColumnName			= "IsExternalFund";
			public static string ProjectTitleColumnName				= "ProjectTitle";
			public static string AnnualRateColumnName				= "AnnualRate";
			public static string EffectiveDateColumnName			= "EffectiveDate";
			public static string ExpirationDateColumnName			= "ExpirationDate";
			public static string PercentEffortColumnName			= "PercentEffort";
			public static string CommentColumnName					= "Comment";
			public static string EditedByColumnName					= "EditedBy";
			public static string EditDateColumnName					= "EditDate";
			public static string FundIdColumnName					= "FundId";
			public static string FundNumberColumnName				= "FundNumber";
			public static string ExternalFundSourceNameColumnName	= "ExternalFundSourceName";
			public static string GetSalaryDistributionsSPROCName	= "GetSalaryDistributions";
			public static string UpdateSalaryDistributionSPROCName	= "UpdateSalaryDistribution";
			public static string InsertSalaryDistributionSPROCName	= "InsertSalaryDistribution";
			public static string DeleteSalaryDistributionSPROCName	= "DeleteSalaryDistribution";
		}
		#endregion

		#region Salary adjustment constants
		public class SalaryAdjustmentsConstants
		{
			public static string SalaryAdjustmentsTableName			= "Salaries";
			public static string SalaryIDColumnName					= "SalaryID";
			public static string EmployeeJobMapIDColumnName			= "EmployeeJobMapId";
			public static string SalaryColumnName					= "Salary";
			public static string EffectiveDateColumnName			= "EffectiveDate";
			public static string EditedByColumnName					= "EditedBy";
			public static string EditDateColumnName					= "EditDate";
			public static string GetSalaryAdjustmentsSPROCName		= "GetSalaryAdjustments";
			public static string UpdateSalaryAdjustmentSPROCName	= "UpdateSalaryAdjustment";
			public static string InsertSalaryAdjustmentSPROCName	= "InsertSalaryAdjustment";
		}
		#endregion

		#region Personnel demog info constants
		public class PersonnelDetailsConstants
		{
			public static string PersonnelDetailsTableName		= "PersonnelDetails";
			public static string CommentsTableName				= "Comments";
			public static string GetPersonnelDetailsSPROCName	= "GetPersonnelDemogInfo";
			public static string UpdateHarvardTitleSPROCName	= "UpdateHarvardTitle";
			public static string UpdateCommentSPROCName			= "UpdateComments";
			public static string JobMapIdColumnName				= "EmployeeJobMapId";
			public static string EmployeeNumberColumnName		= "EmployeeNumber";
			public static string EmployeeNameColumnName			= "EmployeeName";
			public static string JobCodeColumnName				= "JobCode";
			public static string HRDepartmentColumnName			= "HRDepartment";
			public static string StatusColumnName				= "Status";
			public static string TitleColumnName				= "Title";
			public static string RecordNumberColumnName			= "RecordNumber";
			public static string HarvardTitleColumnName			= "HarvardTitle";
			public static string CommentColumnName				= "Comment";
			public static string FiscalYearColumnName			= "FiscalYear";
			public static string HireDateColumnName				= "HireDate";
			public static string CommentEditDateColumnName		= "EditDate";
			public static string CommendEditedByColumnName		= "EditedBy";
			public static string IsManagedEmployeeColumnName	= "ManagedEmployee";
		}
		#endregion

		#region Fiscal Year constants
		public static string FiscalYearStartDate	= "10/1/ ";
		public static string FiscalYearEndDate		= "9/30/ ";
		#endregion

		#region Add/Edit Distribution Constants
		public static string AddOperation				= "Add";
		public static string UpdateOperation			= "Edit";
		public static string QueryStringOperationKey	= "Operation";
		public static string QueryStringJobMapIDKey		= "EmployeeJobMapID";
		public static string QueryStringSplitIDKey		= "SplitID";
		#endregion

		#region Comments Popup constants
		public static string QueryStringNotesKey		= "notes";
		#endregion

		public static string PersonnelDetailsFormName	= "PersonnelDetailsForm";
		#endregion
	}
	#endregion
}
